using System.Collections.Generic;
using OracleInternal.SqlAndPlsqlParser.RuleProcessors;

namespace OracleInternal.SqlAndPlsqlParser.LocalParsing.Ansi
{
	internal static class OracleMbEarleySelectAnsiRuleMultiProcessors
	{
		public static OracleMbEarleyRuleMultiProcessorAddItem[] s_vRuleProcessorItems;

		static OracleMbEarleySelectAnsiRuleMultiProcessors()
		{
			OracleMbEarleyRuleMultiProcessorAddItem[] array = new OracleMbEarleyRuleMultiProcessorAddItem[141];
			OracleMbEarleyRuleMultiProcessorAddItem oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "select",
				m_vRHSSymbols = new string[1]
				{
					"subquery"
				},
				m_vRuleProcessor = Process_Select_Subquery_StartWithRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllRulesStartingWith
			};
			array[0] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "select",
				m_vRHSSymbols = new string[1]
				{
					"for_update_clause"
				},
				m_vRuleProcessor = Process_Select_ForUpdateClause_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[1] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "select",
				m_vRHSSymbols = new string[1]
				{
					"order_by_clause"
				},
				m_vRuleProcessor = Process_Select_OrderByClause_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[2] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "subquery",
				m_vRHSSymbols = new string[1]
				{
					"simple_set_expr"
				},
				m_vRuleProcessor = Process_Subquery_SimpleSetExpr_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[3] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "subquery",
				m_vRHSSymbols = new string[2]
				{
					"simple_set_expr",
					"order_by_clause"
				},
				m_vRuleProcessor = Process_Subquery_SimpleSetExpr_OrderByClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[4] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "subquery",
				m_vRHSSymbols = new string[2]
				{
					"simple_set_expr",
					"row_limiting_clause"
				},
				m_vRuleProcessor = Process_Subquery_SimpleSetExpr_RowLimitingClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[5] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "subquery",
				m_vRHSSymbols = new string[3]
				{
					"simple_set_expr",
					"order_by_clause",
					"row_limiting_clause"
				},
				m_vRuleProcessor = Process_Subquery_SimpleSetExpr_OrderByClause_RowLimitingClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[6] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "simple_set_expr",
				m_vRHSSymbols = new string[1]
				{
					"query_block"
				},
				m_vRuleProcessor = Process_SimpleSetExpr_QueryBlock_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[7] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "simple_set_expr",
				m_vRHSSymbols = new string[3]
				{
					"simple_set_expr",
					"SET_OPER",
					"simple_set_expr"
				},
				m_vRuleProcessor = Process_SimpleSetExpr_SimpleSetExpr_SET_OPER_SimpleSetExpr_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[8] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "simple_set_expr",
				m_vRHSSymbols = new string[3]
				{
					"'('",
					"simple_set_expr",
					"')'"
				},
				m_vRuleProcessor = Process_SimpleSetExpr_LEFT_PARENTHESIS_SimpleSetExpr_RIGHT_PARENTHESIS_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[9] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "SET_OPER",
				m_vRHSSymbols = new string[1]
				{
					"'INTERSECT'"
				},
				m_vRuleProcessor = Process_SET_OPER_INTERSECT_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[10] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "SET_OPER",
				m_vRHSSymbols = new string[1]
				{
					"'MINUS'"
				},
				m_vRuleProcessor = Process_SET_OPER_MINUS_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[11] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "SET_OPER",
				m_vRHSSymbols = new string[1]
				{
					"'UNION'"
				},
				m_vRuleProcessor = Process_SET_OPER_UNION_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[12] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "SET_OPER",
				m_vRHSSymbols = new string[2]
				{
					"'UNION'",
					"'ALL'"
				},
				m_vRuleProcessor = Process_SET_OPER_UNION_ALL_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[13] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "row_limiting_clause",
				m_vRHSSymbols = new string[1]
				{
					"row_limiting_clause"
				},
				m_vRuleProcessor = Process_RowLimitingClause_RowLimitingClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[14] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "row_limiting_clause",
				m_vRHSSymbols = new string[2]
				{
					"row_limiting_clause",
					"row_limiting_clause"
				},
				m_vRuleProcessor = Process_RowLimitingClause_RowLimitingClause_RowLimitingClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[15] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "row_limiting_clause",
				m_vRHSSymbols = new string[3]
				{
					"'OFFSET'",
					"digits",
					"row_limiting_clause"
				},
				m_vRuleProcessor = Process_RowLimitingClause_OFFSET_Digits_RowLimitingClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[16] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "row_limiting_clause",
				m_vRHSSymbols = new string[1]
				{
					"'ROW'"
				},
				m_vRuleProcessor = Process_RowLimitingClause_Unit_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[17] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "row_limiting_clause",
				m_vRHSSymbols = new string[1]
				{
					"'ROWS'"
				},
				m_vRuleProcessor = Process_RowLimitingClause_Unit_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[18] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "row_limiting_clause",
				m_vRHSSymbols = new string[1]
				{
					"'FIRST'"
				},
				m_vRuleProcessor = Process_RowLimitingClause_Order_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[19] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "row_limiting_clause",
				m_vRHSSymbols = new string[1]
				{
					"'NEXT'"
				},
				m_vRuleProcessor = Process_RowLimitingClause_Order_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[20] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "row_limiting_clause",
				m_vRHSSymbols = new string[3]
				{
					"'FETCH'",
					"row_limiting_clause",
					"row_limiting_clause"
				},
				m_vRuleProcessor = Process_RowLimitingClause_FETCH_RowLimitingClause_RowLimitingClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[21] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "row_limiting_clause",
				m_vRHSSymbols = new string[4]
				{
					"'FETCH'",
					"row_limiting_clause",
					"row_limiting_clause",
					"row_limiting_clause"
				},
				m_vRuleProcessor = Process_RowLimitingClause_FETCH_RowLimitingClause_RowLimitingClause_RowLimitingClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[22] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "row_limiting_clause",
				m_vRHSSymbols = new string[5]
				{
					"'FETCH'",
					"row_limiting_clause",
					"row_limiting_clause",
					"row_limiting_clause",
					"row_limiting_clause"
				},
				m_vRuleProcessor = Process_RowLimitingClause_FETCH_RowLimitingClause_RowLimitingClause_RowLimitingClause_RowLimitingClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[23] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "row_limiting_clause",
				m_vRHSSymbols = new string[1]
				{
					"digits"
				},
				m_vRuleProcessor = Process_RowLimitingClause_Digits_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[24] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "row_limiting_clause",
				m_vRHSSymbols = new string[2]
				{
					"digits",
					"'PERCENT'"
				},
				m_vRuleProcessor = Process_RowLimitingClause_Digits_PERCENT_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[25] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "row_limiting_clause",
				m_vRHSSymbols = new string[1]
				{
					"'ONLY'"
				},
				m_vRuleProcessor = Process_RowLimitingClause_GetFetchType_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[26] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "row_limiting_clause",
				m_vRHSSymbols = new string[2]
				{
					"'WITH'",
					"'TIES'"
				},
				m_vRuleProcessor = Process_RowLimitingClause_GetFetchType_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[27] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "with_clause",
				m_vRHSSymbols = new string[2]
				{
					"'WITH'",
					"with_clause"
				},
				m_vRuleProcessor = Process_WithClause_WITH_WithClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[28] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "with_clause",
				m_vRHSSymbols = new string[1]
				{
					"plsql_declarations"
				},
				m_vRuleProcessor = Process_WithClause_PlsqlDeclarations_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[29] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "with_clause",
				m_vRHSSymbols = new string[1]
				{
					"subquery_factoring_clause"
				},
				m_vRuleProcessor = Process_WithClause_SubqueryFactoringClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[30] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "with_clause",
				m_vRHSSymbols = new string[2]
				{
					"plsql_declarations",
					"subquery_factoring_clause"
				},
				m_vRuleProcessor = Process_WithClause_PlsqlDeclarations_SubqueryFactoringClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[31] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "subquery_factoring_clause",
				m_vRHSSymbols = new string[3]
				{
					"colmapped_query_name",
					"'AS'",
					"par_subquery"
				},
				m_vRuleProcessor = Process_SubqueryFactoringClause_ColmappedQueryName_AS_ParSubquery_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[32] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "subquery_factoring_clause",
				m_vRHSSymbols = new string[1]
				{
					"subquery_factoring_clause"
				},
				m_vRuleProcessor = Process_SubqueryFactoringClause_SubqueryFactoringClause_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[33] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "subquery_factoring_clause",
				m_vRHSSymbols = new string[2]
				{
					"subquery_factoring_clause",
					"subquery_factoring_clause"
				},
				m_vRuleProcessor = Process_SubqueryFactoringClause_SubqueryFactoringClause_SubqueryFactoringClause_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[34] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "subquery_factoring_clause",
				m_vRHSSymbols = new string[1]
				{
					"search_clause"
				},
				m_vRuleProcessor = Process_SubqueryFactoringClause_SearchClause_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[35] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "subquery_factoring_clause",
				m_vRHSSymbols = new string[1]
				{
					"cycle_clause"
				},
				m_vRuleProcessor = Process_SubqueryFactoringClause_CycleClause_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[36] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "plsql_declarations",
				m_vRHSSymbols = new string[1]
				{
					"subprg_body"
				},
				m_vRuleProcessor = Process_PlsqlDeclarations_SubprgBody_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[37] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "plsql_declarations",
				m_vRHSSymbols = new string[2]
				{
					"plsql_declarations",
					"subprg_body"
				},
				m_vRuleProcessor = Process_PlsqlDeclarations_PlsqlDeclarations_SubprgBody_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[38] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "par_subquery",
				m_vRHSSymbols = new string[3]
				{
					"'('",
					"subquery",
					"')'"
				},
				m_vRuleProcessor = Process_ParExpression_LEFT_PARENTHESIS_Subquery_RIGHT_PARENTHESIS_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[39] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "colmapped_query_name",
				m_vRHSSymbols = new string[1]
				{
					"identifier"
				},
				m_vRuleProcessor = Process_ColmappedQueryName_Identifier_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[40] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "colmapped_query_name",
				m_vRHSSymbols = new string[2]
				{
					"identifier",
					"colmapped_query_name"
				},
				m_vRuleProcessor = Process_ColmappedQueryName_Identifier_ColmappedQueryName_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[41] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "colmapped_query_name",
				m_vRHSSymbols = new string[2]
				{
					"'('",
					"identifier"
				},
				m_vRuleProcessor = Process_ColmappedQueryName_LEFT_PARENTHESIS_Identifier_StartWithRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllRulesStartingWith
			};
			array[42] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "colmapped_query_name",
				m_vRHSSymbols = new string[1]
				{
					"colmapped_query_name"
				},
				m_vRuleProcessor = Process_ColmappedQueryName_ColmappedQueryName_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[43] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "colmapped_query_name",
				m_vRHSSymbols = new string[2]
				{
					"','",
					"identifier"
				},
				m_vRuleProcessor = Process_ColmappedQueryName_COMMA_Identifier_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[44] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "cycle_clause",
				m_vRHSSymbols = new string[8]
				{
					"'CYCLE'",
					"identifier",
					"'SET'",
					"identifier",
					"'TO'",
					"literal",
					"'DEFAULT'",
					"literal"
				},
				m_vRuleProcessor = Process_CycleClause_CYCLE_Identifier_SET_Identifier_TO_StringLiteral_DEFAULT_StringLiteral_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[45] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_block",
				m_vRHSSymbols = new string[1]
				{
					"with_clause"
				},
				m_vRuleProcessor = Process_QueryBlock_WithClause_StartWithRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllRulesStartingWith
			};
			array[46] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_block",
				m_vRHSSymbols = new string[1]
				{
					"select_clause"
				},
				m_vRuleProcessor = Process_QueryBlock_SelectClause_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[47] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_block",
				m_vRHSSymbols = new string[1]
				{
					"from_clause"
				},
				m_vRuleProcessor = Process_QueryBlock_FromClause_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[48] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_block",
				m_vRHSSymbols = new string[1]
				{
					"query_block"
				},
				m_vRuleProcessor = Process_QueryBlock_QueryBlock_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[49] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_block",
				m_vRHSSymbols = new string[1]
				{
					"group_by_clause"
				},
				m_vRuleProcessor = Process_QueryBlock_GroupByClause_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[50] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_block",
				m_vRHSSymbols = new string[1]
				{
					"having_clause"
				},
				m_vRuleProcessor = Process_QueryBlock_HavingClause_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[51] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_block",
				m_vRHSSymbols = new string[1]
				{
					"model_clause"
				},
				m_vRuleProcessor = Process_QueryBlock_ModelClause_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[52] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_block",
				m_vRHSSymbols = new string[1]
				{
					"hierarchical_query_clause"
				},
				m_vRuleProcessor = Process_QueryBlock_HierarchicalQueryClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[53] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_block",
				m_vRHSSymbols = new string[1]
				{
					"where_clause"
				},
				m_vRuleProcessor = Process_QueryBlock_WhereClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[54] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_block",
				m_vRHSSymbols = new string[2]
				{
					"hierarchical_query_clause",
					"where_clause"
				},
				m_vRuleProcessor = Process_QueryBlock_HierarchicalQueryClause_WhereClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[55] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_block",
				m_vRHSSymbols = new string[2]
				{
					"where_clause",
					"hierarchical_query_clause"
				},
				m_vRuleProcessor = Process_QueryBlock_WhereClause_HierarchicalQueryClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[56] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "from_clause",
				m_vRHSSymbols = new string[2]
				{
					"'FROM'",
					"table_reference_list"
				},
				m_vRuleProcessor = Process_FromClause_FROM_TableReferenceList_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[57] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_reference_list",
				m_vRHSSymbols = new string[1]
				{
					"table_reference"
				},
				m_vRuleProcessor = Process_TableReferenceList_TableReference_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[58] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_reference_list",
				m_vRHSSymbols = new string[3]
				{
					"table_reference_list",
					"','",
					"table_reference"
				},
				m_vRuleProcessor = Process_TableReferenceList_TableReferenceList_COMMA_TableReference_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[59] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_reference",
				m_vRHSSymbols = new string[1]
				{
					"table_primary_or_joined_table"
				},
				m_vRuleProcessor = Process_TableReference_TablePrimaryOrJoinedTable_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[60] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary_or_joined_table",
				m_vRHSSymbols = new string[1]
				{
					"table_primary"
				},
				m_vRuleProcessor = Process_TablePrimaryOrJoinedTable_TablePrimary_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[61] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary_or_joined_table",
				m_vRHSSymbols = new string[1]
				{
					"joined_table"
				},
				m_vRuleProcessor = Process_TablePrimaryOrJoinedTable_JoinedTable_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[62] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "select_clause",
				m_vRHSSymbols = new string[1]
				{
					"'SELECT'"
				},
				m_vRuleProcessor = Process_SelectClause_SELECT_StartWithRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllRulesStartingWith
			};
			array[63] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "select_clause",
				m_vRHSSymbols = new string[1]
				{
					"distinct_unique_all"
				},
				m_vRuleProcessor = Process_SelectClause_DistinctUniqueAll_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[64] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "select_clause",
				m_vRHSSymbols = new string[1]
				{
					"select_list"
				},
				m_vRuleProcessor = Process_SelectClause_SelectList_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[65] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "select_clause",
				m_vRHSSymbols = new string[1]
				{
					"BULK_COLLECT_opt"
				},
				m_vRuleProcessor = Process_SelectClause_BULKCOLLECTOpt_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[66] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "select_clause",
				m_vRHSSymbols = new string[1]
				{
					"into_list"
				},
				m_vRuleProcessor = Process_SelectClause_IntoList_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[67] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "distinct_unique_all",
				m_vRHSSymbols = new string[1]
				{
					"'ALL'"
				},
				m_vRuleProcessor = Process_DistinctUniqueAll_ALL_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[68] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "distinct_unique_all",
				m_vRHSSymbols = new string[1]
				{
					"'DISTINCT'"
				},
				m_vRuleProcessor = Process_DistinctUniqueAll_DISTINCT_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[69] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "distinct_unique_all",
				m_vRHSSymbols = new string[1]
				{
					"'UNIQUE'"
				},
				m_vRuleProcessor = Process_DistinctUniqueAll_UNIQUE_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[70] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "select_list",
				m_vRHSSymbols = new string[1]
				{
					"'*'"
				},
				m_vRuleProcessor = Process_SelectList_STAR_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[71] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "select_list",
				m_vRHSSymbols = new string[1]
				{
					"select_term"
				},
				m_vRuleProcessor = Process_SelectList_SelectTerm_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[72] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "select_list",
				m_vRHSSymbols = new string[3]
				{
					"select_list",
					"','",
					"'*'"
				},
				m_vRuleProcessor = Process_SelectList_SelectList_COMMA_STAR_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[73] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "select_list",
				m_vRHSSymbols = new string[3]
				{
					"select_list",
					"','",
					"select_term"
				},
				m_vRuleProcessor = Process_SelectList_SelectList_COMMA_SelectTerm_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[74] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "select_term",
				m_vRHSSymbols = new string[1]
				{
					"expr"
				},
				m_vRuleProcessor = Process_SelectTerm_Expr_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[75] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "select_term",
				m_vRHSSymbols = new string[3]
				{
					"identifier",
					"'.'",
					"'*'"
				},
				m_vRuleProcessor = Process_SelectTerm_Identifier_DOT_STAR_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[76] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "select_term",
				m_vRHSSymbols = new string[5]
				{
					"identifier",
					"'.'",
					"identifier",
					"'.'",
					"'*'"
				},
				m_vRuleProcessor = Process_SelectTerm_Identifier_DOT_Identifier_DOT_STAR_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[77] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "select_term",
				m_vRHSSymbols = new string[1]
				{
					"\"aliased_expr\""
				},
				m_vRuleProcessor = Process_SelectTerm_AliasedExpr_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[78] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "\"aliased_expr\"",
				m_vRHSSymbols = new string[2]
				{
					"expr",
					"as_alias"
				},
				m_vRuleProcessor = Process_AliasedExpr_Expr_AsAlias_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[79] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary",
				m_vRHSSymbols = new string[1]
				{
					"table_primary_element"
				},
				m_vRuleProcessor = Process_TablePrimary_TablePrimaryElement_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[80] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary",
				m_vRHSSymbols = new string[2]
				{
					"table_primary_element",
					"identifier"
				},
				m_vRuleProcessor = Process_TablePrimary_TablePrimaryElement_Identifier_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[81] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary",
				m_vRHSSymbols = new string[3]
				{
					"'('",
					"joined_table",
					"')'"
				},
				m_vRuleProcessor = Process_TablePrimary_LEFT_PARENTHESIS_JoinedTable_RIGHT_PARENTHESIS_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[82] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary_element",
				m_vRHSSymbols = new string[1]
				{
					"containers_clause"
				},
				m_vRuleProcessor = Process_TablePrimaryElement_ContainersClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[83] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary_element",
				m_vRHSSymbols = new string[1]
				{
					"json_table"
				},
				m_vRuleProcessor = Process_TablePrimaryElement_JsonTable_StartWithRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllRulesStartingWith
			};
			array[84] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary_element",
				m_vRHSSymbols = new string[1]
				{
					"table_primary_element_qte"
				},
				m_vRuleProcessor = Process_TablePrimaryElement_TablePrimaryElementQTE_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[85] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary_element_qte",
				m_vRHSSymbols = new string[1]
				{
					"table_primary_element_qte"
				},
				m_vRuleProcessor = Process_TablePrimaryElementQTE_TablePrimaryElementQTE_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[86] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary_element_qte",
				m_vRHSSymbols = new string[2]
				{
					"table_primary_element_qte",
					"table_primary_element_qte"
				},
				m_vRuleProcessor = Process_TablePrimaryElementQTE_TablePrimaryElementQTE_TablePrimaryElementQTE_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[87] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary_element_qte",
				m_vRHSSymbols = new string[2]
				{
					"table_primary_element_qte",
					"flashback_query_clause"
				},
				m_vRuleProcessor = Process_TablePrimaryElementQTE_TablePrimaryElementQTE_FlashbackQueryClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[88] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary_element_qte",
				m_vRHSSymbols = new string[3]
				{
					"table_primary_element_qte",
					"flashback_query_clause",
					"table_primary_element_qte"
				},
				m_vRuleProcessor = Process_TablePrimaryElementQTE_TablePrimaryElementQTE_FlashbackQueryClause_TablePrimaryElementQTE_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[89] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary_element_qte",
				m_vRHSSymbols = new string[1]
				{
					"pivot_clause"
				},
				m_vRuleProcessor = Process_TablePrimaryElementQTE_PivotClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[90] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary_element_qte",
				m_vRHSSymbols = new string[1]
				{
					"row_pattern_clause"
				},
				m_vRuleProcessor = Process_TablePrimaryElementQTE_RowPatternClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[91] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary_element_qte",
				m_vRHSSymbols = new string[1]
				{
					"unpivot_clause"
				},
				m_vRuleProcessor = Process_TablePrimaryElementQTE_UnpivotClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[92] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary_element_qte",
				m_vRHSSymbols = new string[1]
				{
					"query_table_expression"
				},
				m_vRuleProcessor = Process_TablePrimaryElementQTE_QueryTableExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[93] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "table_primary_element_qte",
				m_vRHSSymbols = new string[4]
				{
					"'ONLY'",
					"'('",
					"query_table_expression",
					"')'"
				},
				m_vRuleProcessor = Process_TablePrimaryElementQTE_ONLY_LEFT_PARENTHESIS_QueryTableExpression_RIGHT_PARENTHESIS_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[94] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "containers_clause",
				m_vRHSSymbols = new string[4]
				{
					"'CONTAINERS'",
					"'('",
					"identifier",
					"')'"
				},
				m_vRuleProcessor = Process_ContainersClause_CONTAINERS_LEFT_PARENTHESIS_Identifier_RIGHT_PARENTHESIS_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[95] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "containers_clause",
				m_vRHSSymbols = new string[6]
				{
					"'CONTAINERS'",
					"'('",
					"identifier",
					"'.'",
					"identifier",
					"')'"
				},
				m_vRuleProcessor = Process_ContainersClause_CONTAINERS_LEFT_PARENTHESIS_Identifier_DOT_Identifier_RIGHT_PARENTHESIS_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[96] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_table_expression",
				m_vRHSSymbols = new string[1]
				{
					"query_table_expression_named_object"
				},
				m_vRuleProcessor = Process_QueryTableExpression_QueryTableExpressionNamedObject_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[97] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_table_expression",
				m_vRHSSymbols = new string[1]
				{
					"query_table_expression_subquery"
				},
				m_vRuleProcessor = Process_QueryTableExpression_QueryTableExpressionSubquery_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[98] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_table_expression",
				m_vRHSSymbols = new string[1]
				{
					"table_collection_expression"
				},
				m_vRuleProcessor = Process_QueryTableExpression_TableCollectionExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[99] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_table_expression",
				m_vRHSSymbols = new string[1]
				{
					"xmltable"
				},
				m_vRuleProcessor = Process_QueryTableExpression_XMLTable_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[100] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_table_expression_named_object",
				m_vRHSSymbols = new string[2]
				{
					"identifier",
					"'.'"
				},
				m_vRuleProcessor = Process_QueryTableExpressionNamedObject_Identifier_DOT_StartWithRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllRulesStartingWith
			};
			array[101] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_table_expression_named_object",
				m_vRHSSymbols = new string[1]
				{
					"query_table_expression_named_object#"
				},
				m_vRuleProcessor = Process_QueryTableExpressionNamedObject_QueryTableExpressionNamedObjectNN_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[102] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_table_expression_named_object",
				m_vRHSSymbols = new string[1]
				{
					"sample_clause"
				},
				m_vRuleProcessor = Process_QueryTableExpressionNamedObject_SampleClause_EndWithRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllRulesEndingWith
			};
			array[103] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_table_expression_named_object#",
				m_vRHSSymbols = new string[1]
				{
					"identifier"
				},
				m_vRuleProcessor = Process_QueryTableExpressionNamedObjectNN_Identifier_StartWithRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllRulesStartingWith
			};
			array[104] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_table_expression_named_object#",
				m_vRHSSymbols = new string[2]
				{
					"'@'",
					"dblink"
				},
				m_vRuleProcessor = Process_QueryTableExpressionNamedObjectNN_AT_DbLink_EndWithRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllRulesEndingWith
			};
			array[105] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_table_expression_named_object#",
				m_vRHSSymbols = new string[1]
				{
					"partition_extension_clause"
				},
				m_vRuleProcessor = Process_QueryTableExpressionNamedObjectNN_PartitionExtensionClause_EndWithRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllRulesEndingWith
			};
			array[106] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_table_expression_subquery",
				m_vRHSSymbols = new string[1]
				{
					"subquery"
				},
				m_vRuleProcessor = Process_QueryTableExpressionSubquery_Subquery_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[107] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "query_table_expression_subquery",
				m_vRHSSymbols = new string[1]
				{
					"subquery_restriction_clause"
				},
				m_vRuleProcessor = Process_QueryTableExpressionSubquery_SubqueryRestrictionClause_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[108] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "joined_table",
				m_vRHSSymbols = new string[2]
				{
					"table_reference",
					"\"inner_cross_join_clause\""
				},
				m_vRuleProcessor = Process_JoinedTable_TableReference_InnerCrossJoinClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[109] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "joined_table",
				m_vRHSSymbols = new string[2]
				{
					"table_reference",
					"outer_join_clause"
				},
				m_vRuleProcessor = Process_JoinedTable_TableReference_OuterJoinClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[110] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "joined_table",
				m_vRHSSymbols = new string[2]
				{
					"table_reference",
					"cross_outer_apply_clause"
				},
				m_vRuleProcessor = Process_JoinedTable_TableReference_CrossOuterApplyClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[111] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "\"inner_cross_join_clause\"",
				m_vRHSSymbols = new string[3]
				{
					"\"inner_cross_join_clause\"",
					"'JOIN'",
					"table_primary"
				},
				m_vRuleProcessor = Process_InnerCrossJoinClause_InnerCrossJoinClause_JOIN_TablePrimary_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[112] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "\"inner_cross_join_clause\"",
				m_vRHSSymbols = new string[3]
				{
					"'JOIN'",
					"table_reference",
					"on_using_condition"
				},
				m_vRuleProcessor = Process_InnerCrossJoinClause_JOIN_TableReference_OnUsingCondition_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[113] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "\"inner_cross_join_clause\"",
				m_vRHSSymbols = new string[1]
				{
					"'CROSS'"
				},
				m_vRuleProcessor = Process_InnerCrossJoinClause_CROSS_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[114] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "\"inner_cross_join_clause\"",
				m_vRHSSymbols = new string[1]
				{
					"'NATURAL'"
				},
				m_vRuleProcessor = Process_InnerCrossJoinClause_NATURAL_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[115] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "\"inner_cross_join_clause\"",
				m_vRHSSymbols = new string[1]
				{
					"'INNER'"
				},
				m_vRuleProcessor = Process_InnerCrossJoinClause_INNER_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[116] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "cross_outer_apply_clause",
				m_vRHSSymbols = new string[3]
				{
					"cross_outer_apply_clause",
					"'APPLY'",
					"cross_outer_apply_clause"
				},
				m_vRuleProcessor = Process_CrossOuterApplyClause_CrossOuterApplyClause_APPLY_CrossOuterApplyClause_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[117] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "cross_outer_apply_clause",
				m_vRHSSymbols = new string[1]
				{
					"collection_expression"
				},
				m_vRuleProcessor = Process_CrossOuterApplyClause_CollectionExpression_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[118] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "cross_outer_apply_clause",
				m_vRHSSymbols = new string[1]
				{
					"table_primary"
				},
				m_vRuleProcessor = Process_CrossOuterApplyClause_TablePrimary_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[119] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "cross_outer_apply_clause",
				m_vRHSSymbols = new string[1]
				{
					"'CROSS'"
				},
				m_vRuleProcessor = Process_CrossOuterApplyClause_CROSS_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[120] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "cross_outer_apply_clause",
				m_vRHSSymbols = new string[1]
				{
					"'OUTER'"
				},
				m_vRuleProcessor = Process_CrossOuterApplyClause_OUTER_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[121] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "outer_join_clause",
				m_vRHSSymbols = new string[2]
				{
					"outer_join_clause",
					"table_primary"
				},
				m_vRuleProcessor = Process_OuterJoinClause_OuterJoinClause_TablePrimary_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[122] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "outer_join_clause",
				m_vRHSSymbols = new string[2]
				{
					"outer_join_clause",
					"table_reference"
				},
				m_vRuleProcessor = Process_OuterJoinClause_OuterJoinClause_TableReference_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[123] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "outer_join_clause",
				m_vRHSSymbols = new string[2]
				{
					"table_primary",
					"query_partition_clause"
				},
				m_vRuleProcessor = Process_OuterJoinClause_TablePrimary_QueryPartitionClause_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[124] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "outer_join_clause",
				m_vRHSSymbols = new string[1]
				{
					"query_partition_clause"
				},
				m_vRuleProcessor = Process_OuterJoinClause_QueryPartitionClause_StartWithRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllRulesStartingWith
			};
			array[125] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "outer_join_clause",
				m_vRHSSymbols = new string[1]
				{
					"on_using_condition"
				},
				m_vRuleProcessor = Process_OuterJoinClause_OnUsingCondition_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[126] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "outer_join_clause",
				m_vRHSSymbols = new string[2]
				{
					"outer_join_type",
					"'JOIN'"
				},
				m_vRuleProcessor = Process_OuterJoinClause_OuterJoinType_JOIN_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[127] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "outer_join_clause",
				m_vRHSSymbols = new string[3]
				{
					"'NATURAL'",
					"outer_join_type",
					"'JOIN'"
				},
				m_vRuleProcessor = Process_OuterJoinClause_NATURAL_OuterJoinType_JOIN_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[128] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "outer_join_type",
				m_vRHSSymbols = new string[1]
				{
					"outer_join_type"
				},
				m_vRuleProcessor = Process_OuterJoinType_OuterJoinType_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[129] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "outer_join_type",
				m_vRHSSymbols = new string[2]
				{
					"outer_join_type",
					"'OUTER'"
				},
				m_vRuleProcessor = Process_OuterJoinType_OuterJoinType_OUTER_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[130] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "outer_join_type",
				m_vRHSSymbols = new string[1]
				{
					"'FULL'"
				},
				m_vRuleProcessor = Process_OuterJoinType_FULL_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[131] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "outer_join_type",
				m_vRHSSymbols = new string[1]
				{
					"'LEFT'"
				},
				m_vRuleProcessor = Process_OuterJoinType_LEFT_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[132] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "outer_join_type",
				m_vRHSSymbols = new string[1]
				{
					"'RIGHT'"
				},
				m_vRuleProcessor = Process_OuterJoinType_RIGHT_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[133] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "on_using_condition",
				m_vRHSSymbols = new string[2]
				{
					"'ON'",
					"condition"
				},
				m_vRuleProcessor = Process_OnUsingCondition_ON_Condition_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[134] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "on_using_condition",
				m_vRHSSymbols = new string[1]
				{
					"'USING'"
				},
				m_vRuleProcessor = Process_OnUsingCondition_USING_StartWithRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllRulesStartingWith
			};
			array[135] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "on_using_condition",
				m_vRHSSymbols = new string[2]
				{
					"'('",
					"column"
				},
				m_vRuleProcessor = Process_OnUsingCondition_LEFT_PARENTHESIS_Column_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[136] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "on_using_condition",
				m_vRHSSymbols = new string[1]
				{
					"on_using_condition"
				},
				m_vRuleProcessor = Process_OnUsingCondition_OnUsingCondition_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[137] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "on_using_condition",
				m_vRHSSymbols = new string[2]
				{
					"','",
					"column"
				},
				m_vRuleProcessor = Process_OnUsingCondition_COMMA_Column_PartialRule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.AllPartialMatchingRules
			};
			array[138] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "as_alias",
				m_vRHSSymbols = new string[1]
				{
					"identifier"
				},
				m_vRuleProcessor = Process_AsAlias_Identifier_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[139] = oracleMbEarleyRuleMultiProcessorAddItem;
			oracleMbEarleyRuleMultiProcessorAddItem = new OracleMbEarleyRuleMultiProcessorAddItem
			{
				m_vHeadSymbol = "as_alias",
				m_vRHSSymbols = new string[2]
				{
					"'AS'",
					"identifier"
				},
				m_vRuleProcessor = Process_AsAlias_AS_Identifier_Rule,
				m_vAddType = OracleMbEarleyRuleMultiProcessorAddType.SpecificRule
			};
			array[140] = oracleMbEarleyRuleMultiProcessorAddItem;
			s_vRuleProcessorItems = array;
		}

		public static object Process_Select_Subquery_StartWithRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpSelectStatement obj = (OracleLpSelectStatement)ctx.GetActiveObject(3);
			ctx.SetActiveObject(4, null);
			object obj2 = ((!ctx.CurrentRule.IsUnary) ? OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx) : OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx));
			obj.Subquery = (OracleLpSubquery)obj2;
			return obj;
		}

		public static object Process_Select_ForUpdateClause_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			object obj = null;
			if (ctx.CurrentRule.IsUnary)
			{
				return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			}
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_Select_OrderByClause_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			object result = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], ctx.CurrentRuleIndex + 1, -1, ctx);
			((OracleLpParserContext)ctx).CurrentStatementClause = OracleLpStatementClauseType.OrderByClause;
			((OracleLpParserContext)ctx).HandleBindVariables = true;
			return result;
		}

		public static object Process_Subquery_SimpleSetExpr_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
		}

		public static object Process_Subquery_SimpleSetExpr_OrderByClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			object obj = null;
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			obj = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx);
			((OracleLpParserContext)ctx).CurrentStatementClause = OracleLpStatementClauseType.OrderByClause;
			((OracleLpParserContext)ctx).HandleBindVariables = true;
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			return obj;
		}

		public static object Process_Subquery_SimpleSetExpr_RowLimitingClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			object obj = null;
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			obj = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			return obj;
		}

		public static object Process_Subquery_SimpleSetExpr_OrderByClause_RowLimitingClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			object obj = null;
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			obj = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx);
			((OracleLpParserContext)ctx).CurrentStatementClause = OracleLpStatementClauseType.OrderByClause;
			((OracleLpParserContext)ctx).HandleBindVariables = true;
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx);
			return obj;
		}

		public static object Process_SimpleSetExpr_QueryBlock_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpSubquery oracleLpSubquery = (OracleLpSubquery)ctx.GetActiveObject(4);
			OracleLpQueryBlockSubquery oracleLpQueryBlockSubquery = new OracleLpQueryBlockSubquery(null);
			ctx.SetActiveObject(4, oracleLpQueryBlockSubquery);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			if (oracleLpSubquery != null)
			{
				ctx.SetActiveObject(4, oracleLpSubquery);
			}
			return oracleLpQueryBlockSubquery;
		}

		public static object Process_SimpleSetExpr_SimpleSetExpr_SET_OPER_SimpleSetExpr_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpSubquery oracleLpSubquery = (OracleLpSubquery)ctx.GetActiveObject(4);
			OracleLpSetExpressionSubquery oracleLpSetExpressionSubquery = new OracleLpSetExpressionSubquery(null);
			ctx.SetActiveObject(4, oracleLpSetExpressionSubquery);
			oracleLpSetExpressionSubquery.LeftSubquery = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx) as OracleLpSubquery;
			oracleLpSetExpressionSubquery.SetOperator = (OracleLpSetOperator)OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			oracleLpSetExpressionSubquery.RightSubquery = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx) as OracleLpSubquery;
			if (oracleLpSubquery != null)
			{
				ctx.SetActiveObject(4, oracleLpSubquery);
			}
			return oracleLpSetExpressionSubquery;
		}

		public static object Process_SimpleSetExpr_LEFT_PARENTHESIS_SimpleSetExpr_RIGHT_PARENTHESIS_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpSubquery oracleLpSubquery = (OracleLpSubquery)ctx.GetActiveObject(4);
			OracleLpCompoundSubquery oracleLpCompoundSubquery = new OracleLpCompoundSubquery(null);
			ctx.SetActiveObject(4, oracleLpCompoundSubquery);
			oracleLpCompoundSubquery.Subquery = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx) as OracleLpSubquery;
			if (oracleLpSubquery != null)
			{
				ctx.SetActiveObject(4, oracleLpSubquery);
			}
			return oracleLpCompoundSubquery;
		}

		public static object Process_SET_OPER_INTERSECT_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleLpSetOperator.INTERSECT;
		}

		public static object Process_SET_OPER_MINUS_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleLpSetOperator.MINUS;
		}

		public static object Process_SET_OPER_UNION_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleLpSetOperator.UNION;
		}

		public static object Process_SET_OPER_UNION_ALL_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleLpSetOperator.UNION_ALL;
		}

		public static object Process_RowLimitingClause_RowLimitingClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
		}

		public static object Process_RowLimitingClause_RowLimitingClause_RowLimitingClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx);
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
		}

		public static object Process_RowLimitingClause_OFFSET_Digits_RowLimitingClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			ctx.PropertiesBag.Properties["OFFSET"] = ctx.Tokens[list[1].From].m_vContent;
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx);
		}

		public static object Process_RowLimitingClause_Unit_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			string vContent = ctx.Tokens[ctx.CurrentParseNode.From].m_vContent;
			ctx.PropertiesBag.Properties["ROW_LIMITING_CLAUSE_UNIT"] = vContent;
			return vContent;
		}

		public static object Process_RowLimitingClause_Order_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			string vContent = ctx.Tokens[ctx.CurrentParseNode.From].m_vContent;
			ctx.PropertiesBag.Properties["FETCH_ORDER"] = vContent;
			return vContent;
		}

		public static object Process_RowLimitingClause_FETCH_RowLimitingClause_RowLimitingClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx);
		}

		public static object Process_RowLimitingClause_FETCH_RowLimitingClause_RowLimitingClause_RowLimitingClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx);
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[3], 0, -1, ctx);
		}

		public static object Process_RowLimitingClause_FETCH_RowLimitingClause_RowLimitingClause_RowLimitingClause_RowLimitingClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[3], 0, -1, ctx);
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[4], 0, -1, ctx);
		}

		public static object Process_RowLimitingClause_Digits_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			string vContent = ctx.Tokens[ctx.CurrentParseNode.From].m_vContent;
			ctx.PropertiesBag.Properties["FETCH_COUNT"] = vContent;
			return vContent;
		}

		public static object Process_RowLimitingClause_Digits_PERCENT_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			ctx.CurrentParseNode.Children();
			string vContent = ctx.Tokens[ctx.CurrentParseNode.From].m_vContent;
			ctx.PropertiesBag.Properties["FETCH_PERCENT"] = vContent;
			return vContent;
		}

		public static object Process_RowLimitingClause_GetFetchType_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			string text;
			if (ctx.CurrentRule.IsUnary)
			{
				text = ctx.Tokens[ctx.CurrentParseNode.From].m_vContent;
			}
			else
			{
				List<ParseNode> list = ctx.CurrentParseNode.Children();
				text = ctx.Tokens[list[0].From].m_vContent + " " + ctx.Tokens[list[1].From].m_vContent;
			}
			ctx.PropertiesBag.Properties["FETCH_TYPE"] = text;
			return text;
		}

		public static object Process_WithClause_WITH_WithClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpQueryBlock obj = (OracleLpQueryBlock)ctx.GetActiveObject(5);
			obj.WithClause = new OracleLpWithClause(null);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[1], 0, -1, ctx);
			return obj;
		}

		public static object Process_WithClause_PlsqlDeclarations_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpQueryBlock obj = (OracleLpQueryBlock)ctx.GetActiveObject(5);
			obj.WithClause.PlsqlDeclarations = new OracleLpPlsqlDeclarations();
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			return obj;
		}

		public static object Process_WithClause_SubqueryFactoringClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpQueryBlock obj = (OracleLpQueryBlock)ctx.GetActiveObject(5);
			obj.WithClause.SubqueryFactoringClause = new OracleLpSubqueryFactoringClause(null);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			return obj;
		}

		public static object Process_WithClause_PlsqlDeclarations_SubqueryFactoringClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpQueryBlock obj = (OracleLpQueryBlock)ctx.GetActiveObject(5);
			OracleLpWithClause withClause = obj.WithClause;
			withClause.PlsqlDeclarations = new OracleLpPlsqlDeclarations();
			withClause.SubqueryFactoringClause = new OracleLpSubqueryFactoringClause(null);
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			return obj;
		}

		public static object Process_SubqueryFactoringClause_SubqueryFactoringClause_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			object obj = null;
			if (ctx.CurrentRule.IsUnary)
			{
				return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			}
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_SubqueryFactoringClause_SubqueryFactoringClause_SubqueryFactoringClause_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition + 1], 0, -1, ctx);
		}

		public static object Process_SubqueryFactoringClause_ColmappedQueryName_AS_ParSubquery_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpSubqueryFactoringTerm oracleLpSubqueryFactoringTerm = new OracleLpSubqueryFactoringTerm(null);
			oracleLpSubqueryFactoringTerm.ColumnMappedQueryName = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[ruleMatchPosition], 0, -1, ctx) as OracleLpColumnMappedQueryName;
			OracleLpParExpression oracleLpParExpression = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[ruleMatchPosition + 2], 0, -1, ctx) as OracleLpParExpression;
			oracleLpSubqueryFactoringTerm.Subquery = oracleLpParExpression.Subquery;
			((OracleLpQueryBlock)ctx.GetActiveObject(5)).WithClause.SubqueryFactoringClause.AddSubqueryFactoringTerm(oracleLpSubqueryFactoringTerm);
			return oracleLpSubqueryFactoringTerm;
		}

		public static object Process_SubqueryFactoringClause_SearchClause_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_SubqueryFactoringClause_CycleClause_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_PlsqlDeclarations_SubprgBody_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpQueryBlock obj = (OracleLpQueryBlock)ctx.GetActiveObject(5);
			_ = obj.WithClause;
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			return obj;
		}

		public static object Process_PlsqlDeclarations_PlsqlDeclarations_SubprgBody_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpQueryBlock obj = (OracleLpQueryBlock)ctx.GetActiveObject(5);
			_ = obj.WithClause;
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			return obj;
		}

		public static object Process_ParExpression_LEFT_PARENTHESIS_Subquery_RIGHT_PARENTHESIS_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpParExpression oracleLpParExpression = new OracleLpParExpression(null);
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			_ = ctx.RuleProcessorTable;
			object obj = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			oracleLpParExpression.Subquery = obj as OracleLpSubquery;
			return oracleLpParExpression;
		}

		public static object Process_ColmappedQueryName_Identifier_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return new OracleLpColumnMappedQueryName
			{
				Name = new OracleLpName(ctx.Tokens[ctx.CurrentParseNode.From].m_vContent)
			};
		}

		public static object Process_ColmappedQueryName_Identifier_ColmappedQueryName_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpColumnMappedQueryName oracleLpColumnMappedQueryName = new OracleLpColumnMappedQueryName();
			ctx.SetActiveObject(12, oracleLpColumnMappedQueryName);
			oracleLpColumnMappedQueryName.Name = new OracleLpName(ctx.Tokens[list[0].From].m_vContent);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			return oracleLpColumnMappedQueryName;
		}

		public static object Process_ColmappedQueryName_LEFT_PARENTHESIS_Identifier_StartWithRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpColumnMappedQueryName obj = (OracleLpColumnMappedQueryName)ctx.GetActiveObject(12);
			obj.AddColumnAlias(ctx.Tokens[list[1].From].m_vContent);
			return obj;
		}

		public static object Process_ColmappedQueryName_ColmappedQueryName_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_ColmappedQueryName_COMMA_Identifier_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpColumnMappedQueryName obj = (OracleLpColumnMappedQueryName)ctx.GetActiveObject(12);
			obj.AddColumnAlias(ctx.Tokens[list[ruleMatchPosition + 1].From].m_vContent);
			return obj;
		}

		public static object Process_CycleClause_CYCLE_Identifier_SET_Identifier_TO_StringLiteral_DEFAULT_StringLiteral_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			string vContent = ctx.Tokens[list[1].From].m_vContent;
			List<string> list2 = new List<string>();
			list2.Add(vContent);
			ctx.PropertiesBag.Properties["CYCLE_COLUMN_ALIASES"] = list2;
			vContent = ctx.Tokens[list[3].From].m_vContent;
			ctx.PropertiesBag.Properties["CYCLE_MARK_COLUMN_ALIASES"] = vContent;
			return null;
		}

		public static object Process_QueryBlock_WithClause_StartWithRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_QueryBlock_SelectClause_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_QueryBlock_FromClause_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpParserContext obj = (OracleLpParserContext)ctx;
			obj.CurrentStatementClause = OracleLpStatementClauseType.FromClause;
			obj.HandleBindVariables = true;
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_QueryBlock_QueryBlock_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_QueryBlock_GroupByClause_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_QueryBlock_HavingClause_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			((OracleLpParserContext)ctx).CurrentStatementClause = OracleLpStatementClauseType.HavingClause;
			((OracleLpParserContext)ctx).HandleBindVariables = true;
			return null;
		}

		public static object Process_QueryBlock_ModelClause_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_QueryBlock_HierarchicalQueryClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			((OracleLpParserContext)ctx).CurrentStatementClause = OracleLpStatementClauseType.HierarchicalQueryClause;
			((OracleLpParserContext)ctx).HandleBindVariables = true;
			return null;
		}

		public static object Process_QueryBlock_WhereClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("where_clause");
			object result = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			ctx.RuleProcessorTable = ruleProcessorTable;
			return result;
		}

		public static object Process_QueryBlock_HierarchicalQueryClause_WhereClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx);
			((OracleLpParserContext)ctx).CurrentStatementClause = OracleLpStatementClauseType.HierarchicalQueryClause;
			((OracleLpParserContext)ctx).HandleBindVariables = true;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("where_clause");
			object result = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			ctx.RuleProcessorTable = ruleProcessorTable;
			return result;
		}

		public static object Process_QueryBlock_WhereClause_HierarchicalQueryClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			object obj = null;
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("where_clause");
			obj = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			((OracleLpParserContext)ctx).CurrentStatementClause = OracleLpStatementClauseType.HierarchicalQueryClause;
			((OracleLpParserContext)ctx).HandleBindVariables = true;
			ctx.RuleProcessorTable = ruleProcessorTable;
			return obj;
		}

		public static object Process_FromClause_FROM_TableReferenceList_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpQueryBlock obj = (OracleLpQueryBlock)ctx.GetActiveObject(5);
			obj.FromClause = new OracleLpFromClauseAnsi(obj);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			return null;
		}

		public static object Process_TableReferenceList_TableReference_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpQueryBlock obj = (OracleLpQueryBlock)ctx.GetActiveObject(5);
			OracleLpTableReferenceAnsi oracleLpTableReferenceAnsi = (OracleLpTableReferenceAnsi)OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			obj.FromClause.Terms.Add(oracleLpTableReferenceAnsi);
			return oracleLpTableReferenceAnsi;
		}

		public static object Process_TableReferenceList_TableReferenceList_COMMA_TableReference_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpQueryBlock obj = (OracleLpQueryBlock)ctx.GetActiveObject(5);
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx);
			OracleLpTableReferenceAnsi oracleLpTableReferenceAnsi = (OracleLpTableReferenceAnsi)OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx);
			obj.FromClause.Terms.Add(oracleLpTableReferenceAnsi);
			return oracleLpTableReferenceAnsi;
		}

		public static object Process_TableReference_TablePrimaryOrJoinedTable_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
		}

		public static object Process_TablePrimaryOrJoinedTable_TablePrimary_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpTableReferenceAnsiTablePrimary oracleLpTableReferenceAnsiTablePrimary = new OracleLpTableReferenceAnsiTablePrimary(null);
			ctx.SetActiveObject(7, oracleLpTableReferenceAnsiTablePrimary);
			oracleLpTableReferenceAnsiTablePrimary.TablePrimary = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx) as OracleLpTablePrimary;
			return oracleLpTableReferenceAnsiTablePrimary;
		}

		public static object Process_TablePrimaryOrJoinedTable_JoinedTable_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpTableReferenceAnsiJoinedTable oracleLpTableReferenceAnsiJoinedTable = new OracleLpTableReferenceAnsiJoinedTable(null);
			ctx.SetActiveObject(7, oracleLpTableReferenceAnsiJoinedTable);
			oracleLpTableReferenceAnsiJoinedTable.JoinedTable = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx) as OracleLpJoinedTable;
			return oracleLpTableReferenceAnsiJoinedTable;
		}

		public static object Process_SelectClause_SELECT_StartWithRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return null;
		}

		public static object Process_SelectClause_DistinctUniqueAll_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			((OracleLpQueryBlock)ctx.GetActiveObject(5)).SelectClause.SelectionType = (OracleLpSelectionType)OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[ruleMatchPosition], 0, -1, ctx);
			return null;
		}

		public static object Process_SelectClause_SelectList_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpParserContext oracleLpParserContext = (OracleLpParserContext)ctx;
			oracleLpParserContext.CurrentStatementClause = OracleLpStatementClauseType.SelectList;
			oracleLpParserContext.HandleBindVariables = true;
			object result = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[ruleMatchPosition], 0, -1, ctx);
			oracleLpParserContext.HandleBindVariables = true;
			return result;
		}

		public static object Process_SelectClause_BULKCOLLECTOpt_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			((OracleLpQueryBlock)ctx.GetActiveObject(5)).SelectClause.BulkCollect = true;
			return null;
		}

		public static object Process_SelectClause_IntoList_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			((OracleLpParserContext)ctx).CurrentStatementClause = OracleLpStatementClauseType.SelectIntoList;
			((OracleLpParserContext)ctx).HandleBindVariables = true;
			object result = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[ruleMatchPosition], 0, -1, ctx);
			((OracleLpParserContext)ctx).CurrentStatementClause = OracleLpStatementClauseType.SelectIntoList;
			((OracleLpParserContext)ctx).HandleBindVariables = true;
			return result;
		}

		public static object Process_DistinctUniqueAll_ALL_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleLpSelectionType.ALL;
		}

		public static object Process_DistinctUniqueAll_DISTINCT_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleLpSelectionType.DISTINCT;
		}

		public static object Process_DistinctUniqueAll_UNIQUE_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleLpSelectionType.UNIQUE;
		}

		public static object Process_SelectList_STAR_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpSelectClause selectClause = ((OracleLpQueryBlock)ctx.GetActiveObject(5)).SelectClause;
			OracleLpSelectTermAll item = new OracleLpSelectTermAll(selectClause);
			selectClause.SelectList.Add(item);
			return selectClause;
		}

		public static object Process_SelectList_SelectTerm_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			return null;
		}

		public static object Process_SelectList_SelectList_COMMA_STAR_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[0], 0, -1, ctx);
			OracleLpSelectClause selectClause = ((OracleLpQueryBlock)ctx.GetActiveObject(5)).SelectClause;
			OracleLpSelectTermAll item = new OracleLpSelectTermAll(selectClause);
			selectClause.SelectList.Add(item);
			return selectClause;
		}

		public static object Process_SelectList_SelectList_COMMA_SelectTerm_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx);
			return null;
		}

		public static object Process_SelectTerm_Expr_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpParserContext oracleLpParserContext = (OracleLpParserContext)ctx;
			OracleLpSelectClause selectClause = ((OracleLpQueryBlock)ctx.GetActiveObject(5)).SelectClause;
			OracleLpSelectTermSpecific oracleLpSelectTermSpecific = new OracleLpSelectTermSpecific(selectClause)
			{
				BindRefStart = oracleLpParserContext.CurrentStatementBindVarCount
			};
			selectClause.SelectList.Add(oracleLpSelectTermSpecific);
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("expr");
			oracleLpParserContext.HandleBindVariables = true;
			OracleLpExpression oracleLpExpression = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx) as OracleLpExpression;
			ctx.RuleProcessorTable = ruleProcessorTable;
			List<LexerToken> tokens = ctx.Tokens;
			ParseNode currentParseNode = ctx.CurrentParseNode;
			int vBegin = tokens[currentParseNode.From].m_vBegin;
			int vEnd = tokens[currentParseNode.To - 1].m_vEnd;
			oracleLpExpression.Text = new OracleLpTextFragment(ctx.Script, vBegin, vEnd - vBegin);
			oracleLpSelectTermSpecific.Expression = oracleLpExpression;
			oracleLpSelectTermSpecific.BindRefEnd = oracleLpParserContext.CurrentStatementBindVarCount;
			return oracleLpSelectTermSpecific;
		}

		public static object Process_SelectTerm_Identifier_DOT_STAR_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpSelectClause selectClause = ((OracleLpQueryBlock)ctx.GetActiveObject(5)).SelectClause;
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpSelectTermAll oracleLpSelectTermAll = new OracleLpSelectTermAll(selectClause)
			{
				ParentObjectName = new OracleLpName(ctx.Tokens[list[0].From].m_vContent)
			};
			selectClause.SelectList.Add(oracleLpSelectTermAll);
			return oracleLpSelectTermAll;
		}

		public static object Process_SelectTerm_Identifier_DOT_Identifier_DOT_STAR_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpSelectClause selectClause = ((OracleLpQueryBlock)ctx.GetActiveObject(5)).SelectClause;
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpSelectTermAll oracleLpSelectTermAll = new OracleLpSelectTermAll(selectClause)
			{
				SchemaName = new OracleLpName(ctx.Tokens[list[0].From].m_vContent),
				ParentObjectName = new OracleLpName(ctx.Tokens[list[2].From].m_vContent)
			};
			selectClause.SelectList.Add(oracleLpSelectTermAll);
			return oracleLpSelectTermAll;
		}

		public static object Process_SelectTerm_AliasedExpr_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
		}

		public static object Process_AliasedExpr_Expr_AsAlias_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpParserContext oracleLpParserContext = (OracleLpParserContext)ctx;
			OracleLpSelectClause selectClause = ((OracleLpQueryBlock)ctx.GetActiveObject(5)).SelectClause;
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpSelectTermSpecific oracleLpSelectTermSpecific = new OracleLpSelectTermSpecific(selectClause)
			{
				BindRefStart = oracleLpParserContext.CurrentStatementBindVarCount
			};
			selectClause.SelectList.Add(oracleLpSelectTermSpecific);
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("expr");
			oracleLpParserContext.HandleBindVariables = true;
			OracleLpExpression oracleLpExpression = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx) as OracleLpExpression;
			ctx.RuleProcessorTable = ruleProcessorTable;
			List<LexerToken> tokens = ctx.Tokens;
			ParseNode parseNode = list[0];
			int vBegin = tokens[parseNode.From].m_vBegin;
			int vEnd = tokens[parseNode.To - 1].m_vEnd;
			oracleLpExpression.Text = new OracleLpTextFragment(ctx.Script, vBegin, vEnd - vBegin);
			oracleLpSelectTermSpecific.Expression = oracleLpExpression;
			oracleLpSelectTermSpecific.Alias = new OracleLpName(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx) as string);
			oracleLpSelectTermSpecific.BindRefEnd = oracleLpParserContext.CurrentStatementBindVarCount;
			return oracleLpSelectTermSpecific;
		}

		public static object Process_TablePrimary_TablePrimaryElement_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpTablePrimary ao = (OracleLpTablePrimary)ctx.GetActiveObject(8);
			OracleLpTablePrimaryTablePrimaryElement oracleLpTablePrimaryTablePrimaryElement = new OracleLpTablePrimaryTablePrimaryElement(null);
			ctx.SetActiveObject(8, oracleLpTablePrimaryTablePrimaryElement);
			oracleLpTablePrimaryTablePrimaryElement.TablePrimaryElement = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx) as OracleLpTablePrimaryElement;
			ctx.SetActiveObject(8, ao);
			return oracleLpTablePrimaryTablePrimaryElement;
		}

		public static object Process_TablePrimary_TablePrimaryElement_Identifier_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpTablePrimary ao = (OracleLpTablePrimary)ctx.GetActiveObject(8);
			OracleLpTablePrimaryTablePrimaryElement oracleLpTablePrimaryTablePrimaryElement = new OracleLpTablePrimaryTablePrimaryElement(null);
			ctx.SetActiveObject(8, oracleLpTablePrimaryTablePrimaryElement);
			oracleLpTablePrimaryTablePrimaryElement.TablePrimaryElement = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx) as OracleLpTablePrimaryElement;
			oracleLpTablePrimaryTablePrimaryElement.Alias = new OracleLpName(ctx.Tokens[list[1].From].m_vContent);
			ctx.SetActiveObject(8, ao);
			return oracleLpTablePrimaryTablePrimaryElement;
		}

		public static object Process_TablePrimary_LEFT_PARENTHESIS_JoinedTable_RIGHT_PARENTHESIS_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpTablePrimary ao = (OracleLpTablePrimary)ctx.GetActiveObject(8);
			OracleLpTablePrimaryJoinedTable oracleLpTablePrimaryJoinedTable = new OracleLpTablePrimaryJoinedTable(null);
			ctx.SetActiveObject(8, oracleLpTablePrimaryJoinedTable);
			oracleLpTablePrimaryJoinedTable.JoinedTable = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx) as OracleLpJoinedTable;
			ctx.SetActiveObject(8, ao);
			return oracleLpTablePrimaryJoinedTable;
		}

		public static object Process_TablePrimaryElement_ContainersClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
		}

		public static object Process_TablePrimaryElement_JsonTable_StartWithRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return new OracleLpTablePrimaryElementJsonTable(null);
		}

		public static object Process_TablePrimaryElement_TablePrimaryElementQTE_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
		}

		public static object Process_TablePrimaryElementQTE_TablePrimaryElementQTE_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return new OracleLpTablePrimaryElementQueryTableExpression(null)
			{
				QueryTableExpression = (OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx) as OracleLpQueryTableExpression)
			};
		}

		public static object Process_TablePrimaryElementQTE_TablePrimaryElementQTE_TablePrimaryElementQTE_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpTablePrimaryElementQueryTableExpression result = new OracleLpTablePrimaryElementQueryTableExpression(null)
			{
				QueryTableExpression = (OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx) as OracleLpQueryTableExpression)
			};
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			return result;
		}

		public static object Process_TablePrimaryElementQTE_TablePrimaryElementQTE_FlashbackQueryClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpTablePrimaryElementQueryTableExpression result = new OracleLpTablePrimaryElementQueryTableExpression(null)
			{
				QueryTableExpression = (OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx) as OracleLpQueryTableExpression)
			};
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			return result;
		}

		public static object Process_TablePrimaryElementQTE_TablePrimaryElementQTE_FlashbackQueryClause_TablePrimaryElementQTE_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpTablePrimaryElementQueryTableExpression result = new OracleLpTablePrimaryElementQueryTableExpression(null)
			{
				QueryTableExpression = (OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx) as OracleLpQueryTableExpression)
			};
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx);
			return result;
		}

		public static object Process_TablePrimaryElementQTE_PivotClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
		}

		public static object Process_TablePrimaryElementQTE_RowPatternClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
		}

		public static object Process_TablePrimaryElementQTE_UnpivotClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
		}

		public static object Process_TablePrimaryElementQTE_QueryTableExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
		}

		public static object Process_TablePrimaryElementQTE_ONLY_LEFT_PARENTHESIS_QueryTableExpression_RIGHT_PARENTHESIS_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[2], 0, -1, ctx);
		}

		public static object Process_ContainersClause_CONTAINERS_LEFT_PARENTHESIS_Identifier_RIGHT_PARENTHESIS_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpTablePrimaryElementContainers oracleLpTablePrimaryElementContainers = new OracleLpTablePrimaryElementContainers(null);
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpQteNamedObject oracleLpQteNamedObject = (OracleLpQteNamedObject)(oracleLpTablePrimaryElementContainers.QueryTableExpression = new OracleLpQteNamedObject(oracleLpTablePrimaryElementContainers));
			oracleLpQteNamedObject.ObjectName = new OracleLpName(ctx.Tokens[list[2].From].m_vContent);
			return oracleLpTablePrimaryElementContainers;
		}

		public static object Process_ContainersClause_CONTAINERS_LEFT_PARENTHESIS_Identifier_DOT_Identifier_RIGHT_PARENTHESIS_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpTablePrimaryElementContainers oracleLpTablePrimaryElementContainers = new OracleLpTablePrimaryElementContainers(null);
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpQteNamedObject oracleLpQteNamedObject = (OracleLpQteNamedObject)(oracleLpTablePrimaryElementContainers.QueryTableExpression = new OracleLpQteNamedObject(oracleLpTablePrimaryElementContainers));
			oracleLpQteNamedObject.SchemaName = new OracleLpName(ctx.Tokens[list[2].From].m_vContent);
			oracleLpQteNamedObject.ObjectName = new OracleLpName(ctx.Tokens[list[4].From].m_vContent);
			return oracleLpTablePrimaryElementContainers;
		}

		public static object Process_QueryTableExpression_QueryTableExpressionNamedObject_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpQteNamedObject oracleLpQteNamedObject = new OracleLpQteNamedObject(null);
			ctx.SetActiveObject(13, oracleLpQteNamedObject);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			return oracleLpQteNamedObject;
		}

		public static object Process_QueryTableExpression_QueryTableExpressionSubquery_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx) as OracleLpQteSubquery;
		}

		public static object Process_QueryTableExpression_TableCollectionExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpQteTableCollectionExpression oracleLpQteTableCollectionExpression = new OracleLpQteTableCollectionExpression(null);
			List<LexerToken> tokens = ctx.Tokens;
			ParseNode currentParseNode = ctx.CurrentParseNode;
			int vBegin = tokens[currentParseNode.From].m_vBegin;
			oracleLpQteTableCollectionExpression.ExpressionText = new OracleLpTextFragment(length: tokens[currentParseNode.To].m_vEnd - vBegin, text: ctx.Script, start: vBegin);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			return oracleLpQteTableCollectionExpression;
		}

		public static object Process_QueryTableExpression_XMLTable_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpQteXMLTable result = new OracleLpQteXMLTable(null);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			return result;
		}

		public static object Process_QueryTableExpressionNamedObject_Identifier_DOT_StartWithRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpQteNamedObject obj = (OracleLpQteNamedObject)ctx.GetActiveObject(13);
			OracleLpName oracleLpName2 = (obj.SchemaName = new OracleLpName(ctx.Tokens[ctx.CurrentParseNode.Children()[0].From].m_vContent));
			return obj;
		}

		public static object Process_QueryTableExpressionNamedObject_QueryTableExpressionNamedObjectNN_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			object obj = null;
			if (ctx.CurrentRule.IsUnary)
			{
				return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			}
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_QueryTableExpressionNamedObject_SampleClause_EndWithRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_QueryTableExpressionNamedObjectNN_Identifier_StartWithRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpQteNamedObject obj = (OracleLpQteNamedObject)ctx.GetActiveObject(13);
			string rawName = ((!ctx.CurrentRule.IsUnary) ? ctx.Tokens[ctx.CurrentParseNode.Children()[0].From].m_vContent : ctx.Tokens[ctx.CurrentParseNode.From].m_vContent);
			return obj.ObjectName = new OracleLpName(rawName);
		}

		public static object Process_QueryTableExpressionNamedObjectNN_AT_DbLink_EndWithRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpQteNamedObject obj = (OracleLpQteNamedObject)ctx.GetActiveObject(13);
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("dblink");
			obj.Dblink = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[ruleMatchPosition + 1], 0, -1, ctx) as OracleLpDbLink;
			ctx.RuleProcessorTable = ruleProcessorTable;
			return obj;
		}

		public static object Process_QueryTableExpressionNamedObjectNN_PartitionExtensionClause_EndWithRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_QueryTableExpressionSubquery_Subquery_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			return new OracleLpQteSubquery(null)
			{
				Subquery = (OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[ruleMatchPosition], 0, -1, ctx) as OracleLpSubquery)
			};
		}

		public static object Process_QueryTableExpressionSubquery_SubqueryRestrictionClause_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_JoinedTable_TableReference_InnerCrossJoinClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpJoinedTable obj = new OracleLpJoinedTable(null)
			{
				TableReference = (OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx) as OracleLpTableReferenceAnsi)
			};
			OracleLpBaseAnsiJoinClause ao = (OracleLpBaseAnsiJoinClause)ctx.GetActiveObject(14);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			obj.JoinClause = (OracleLpBaseAnsiJoinClause)ctx.GetActiveObject(14);
			ctx.SetActiveObject(14, ao);
			return obj;
		}

		public static object Process_JoinedTable_TableReference_OuterJoinClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpJoinedTable obj = new OracleLpJoinedTable(null)
			{
				TableReference = (OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx) as OracleLpTableReferenceAnsi)
			};
			OracleLpBaseAnsiJoinClause ao = (OracleLpBaseAnsiJoinClause)ctx.GetActiveObject(14);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			obj.JoinClause = (OracleLpBaseAnsiJoinClause)ctx.GetActiveObject(14);
			ctx.SetActiveObject(14, ao);
			return obj;
		}

		public static object Process_JoinedTable_TableReference_CrossOuterApplyClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpJoinedTable obj = new OracleLpJoinedTable(null)
			{
				TableReference = (OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx) as OracleLpTableReferenceAnsi)
			};
			OracleLpBaseAnsiJoinClause ao = (OracleLpBaseAnsiJoinClause)ctx.GetActiveObject(14);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			obj.JoinClause = (OracleLpBaseAnsiJoinClause)ctx.GetActiveObject(14);
			ctx.SetActiveObject(14, ao);
			return obj;
		}

		public static object Process_InnerCrossJoinClause_InnerCrossJoinClause_JOIN_TablePrimary_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpAnsiInnerCrossJoinClauseNoCondition oracleLpAnsiInnerCrossJoinClauseNoCondition = new OracleLpAnsiInnerCrossJoinClauseNoCondition(null);
			ctx.SetActiveObject(14, oracleLpAnsiInnerCrossJoinClauseNoCondition);
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx);
			oracleLpAnsiInnerCrossJoinClauseNoCondition.TablePrimary = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx) as OracleLpTablePrimary;
			return oracleLpAnsiInnerCrossJoinClauseNoCondition;
		}

		public static object Process_InnerCrossJoinClause_JOIN_TableReference_OnUsingCondition_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpAnsiInnerCrossJoinClauseWithCondition oracleLpAnsiInnerCrossJoinClauseWithCondition = new OracleLpAnsiInnerCrossJoinClauseWithCondition(null);
			oracleLpAnsiInnerCrossJoinClauseWithCondition.Condition = new OracleLpJoinCondition();
			ctx.SetActiveObject(14, oracleLpAnsiInnerCrossJoinClauseWithCondition);
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			oracleLpAnsiInnerCrossJoinClauseWithCondition.TableReference = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx) as OracleLpTableReferenceAnsi;
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx);
			return oracleLpAnsiInnerCrossJoinClauseWithCondition;
		}

		public static object Process_InnerCrossJoinClause_CROSS_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			((OracleLpAnsiInnerCrossJoinClauseNoCondition)ctx.GetActiveObject(14)).Type = OracleLpInnerCrossJoinNoConditionType.Cross;
			return null;
		}

		public static object Process_InnerCrossJoinClause_NATURAL_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			((OracleLpAnsiInnerCrossJoinClauseNoCondition)ctx.GetActiveObject(14)).Type = OracleLpInnerCrossJoinNoConditionType.Natural;
			return null;
		}

		public static object Process_InnerCrossJoinClause_INNER_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			((OracleLpAnsiInnerCrossJoinClauseNoCondition)ctx.GetActiveObject(14)).Type = OracleLpInnerCrossJoinNoConditionType.NaturalInner;
			return null;
		}

		public static object Process_CrossOuterApplyClause_CrossOuterApplyClause_APPLY_CrossOuterApplyClause_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			object result = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[2], 0, -1, ctx);
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx);
			return result;
		}

		public static object Process_CrossOuterApplyClause_CollectionExpression_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpAnsiCrossOuterApplyClauseCollectionExpression oracleLpAnsiCrossOuterApplyClauseCollectionExpression = new OracleLpAnsiCrossOuterApplyClauseCollectionExpression(null);
			ctx.SetActiveObject(14, oracleLpAnsiCrossOuterApplyClauseCollectionExpression);
			oracleLpAnsiCrossOuterApplyClauseCollectionExpression.CollectionExpression = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx) as OracleLpCollectionExpression;
			return oracleLpAnsiCrossOuterApplyClauseCollectionExpression;
		}

		public static object Process_CrossOuterApplyClause_TablePrimary_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpAnsiCrossOuterApplyClauseTablePrimary oracleLpAnsiCrossOuterApplyClauseTablePrimary = new OracleLpAnsiCrossOuterApplyClauseTablePrimary(null);
			ctx.SetActiveObject(14, oracleLpAnsiCrossOuterApplyClauseTablePrimary);
			oracleLpAnsiCrossOuterApplyClauseTablePrimary.TablePrimary = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx) as OracleLpTablePrimary;
			return oracleLpAnsiCrossOuterApplyClauseTablePrimary;
		}

		public static object Process_CrossOuterApplyClause_CROSS_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			((OracleLpAnsiCrossOuterApplyClause)ctx.GetActiveObject(14)).Type = OracleLpCrossOuterApplyType.Cross;
			return null;
		}

		public static object Process_CrossOuterApplyClause_OUTER_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			((OracleLpAnsiCrossOuterApplyClause)ctx.GetActiveObject(14)).Type = OracleLpCrossOuterApplyType.Outer;
			return null;
		}

		public static object Process_OuterJoinClause_OuterJoinClause_TablePrimary_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpAnsiOuterJoinClauseNoCondition oracleLpAnsiOuterJoinClauseNoCondition = new OracleLpAnsiOuterJoinClauseNoCondition(null);
			ctx.SetActiveObject(14, oracleLpAnsiOuterJoinClauseNoCondition);
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx);
			oracleLpAnsiOuterJoinClauseNoCondition.TablePrimary = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx) as OracleLpTablePrimary;
			return oracleLpAnsiOuterJoinClauseNoCondition;
		}

		public static object Process_OuterJoinClause_OuterJoinClause_TableReference_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpAnsiOuterJoinClauseWithCondition oracleLpAnsiOuterJoinClauseWithCondition = new OracleLpAnsiOuterJoinClauseWithCondition(null);
			ctx.SetActiveObject(14, oracleLpAnsiOuterJoinClauseWithCondition);
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[0], 0, -1, ctx);
			oracleLpAnsiOuterJoinClauseWithCondition.TableReference = OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx) as OracleLpTableReferenceAnsi;
			return oracleLpAnsiOuterJoinClauseWithCondition;
		}

		public static object Process_OuterJoinClause_TablePrimary_QueryPartitionClause_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition + 1], 0, -1, ctx);
			return null;
		}

		public static object Process_OuterJoinClause_QueryPartitionClause_StartWithRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[0], 0, -1, ctx);
			return null;
		}

		public static object Process_OuterJoinClause_OnUsingCondition_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
			return null;
		}

		public static object Process_OuterJoinClause_OuterJoinType_JOIN_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[0], 0, -1, ctx);
			return null;
		}

		public static object Process_OuterJoinClause_NATURAL_OuterJoinType_JOIN_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			((IOracleLpAnsiOuterJoinClauseBase)ctx.GetActiveObject(14)).Natural = true;
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[1], 0, -1, ctx);
			return null;
		}

		public static object Process_OuterJoinType_OuterJoinType_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode, ctx.CurrentRuleIndex + 1, -1, ctx);
			return null;
		}

		public static object Process_OuterJoinType_OuterJoinType_OUTER_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			((IOracleLpAnsiOuterJoinClauseBase)ctx.GetActiveObject(14)).Outer = true;
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[0], 0, -1, ctx);
			return null;
		}

		public static object Process_OuterJoinType_FULL_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			((IOracleLpAnsiOuterJoinClauseBase)ctx.GetActiveObject(14)).Type = OracleLpOuterJoinType.Full;
			return null;
		}

		public static object Process_OuterJoinType_LEFT_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			((IOracleLpAnsiOuterJoinClauseBase)ctx.GetActiveObject(14)).Type = OracleLpOuterJoinType.Left;
			return null;
		}

		public static object Process_OuterJoinType_RIGHT_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			((IOracleLpAnsiOuterJoinClauseBase)ctx.GetActiveObject(14)).Type = OracleLpOuterJoinType.Right;
			return null;
		}

		public static object Process_OnUsingCondition_ON_Condition_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleLpJoinCondition condition = ((OracleLpBaseAnsiJoinClauseWithCondition)ctx.GetActiveObject(14)).Condition;
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("condition");
			OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[1], 0, -1, ctx);
			ctx.RuleProcessorTable = ruleProcessorTable;
			return condition;
		}

		public static object Process_OnUsingCondition_USING_StartWithRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return ((OracleLpBaseAnsiJoinClauseWithCondition)ctx.GetActiveObject(14)).Condition;
		}

		public static object Process_OnUsingCondition_LEFT_PARENTHESIS_Column_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpJoinCondition condition = ((OracleLpBaseAnsiJoinClauseWithCondition)ctx.GetActiveObject(14)).Condition;
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("column");
			condition.Columns.Add(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[ruleMatchPosition + 1], 0, -1, ctx) as OracleLpColumn);
			ctx.RuleProcessorTable = ruleProcessorTable;
			return condition;
		}

		public static object Process_OnUsingCondition_OnUsingCondition_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(ctx.CurrentParseNode.Children()[ruleMatchPosition], 0, -1, ctx);
		}

		public static object Process_OnUsingCondition_COMMA_Column_PartialRule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			OracleLpJoinCondition condition = ((OracleLpBaseAnsiJoinClauseWithCondition)ctx.GetActiveObject(14)).Condition;
			List<ParseNode> list = ctx.CurrentParseNode.Children();
			OracleMbEarleyRuleMultiProcessorTable ruleProcessorTable = ctx.RuleProcessorTable;
			ctx.RuleProcessorTable = ctx.GetRuleProcessorTable("column");
			condition.Columns.Add(OracleMbEarleyRuleMultiProcessor.ProcessNodeRules(list[ruleMatchPosition + 1], 0, -1, ctx) as OracleLpColumn);
			ctx.RuleProcessorTable = ruleProcessorTable;
			return condition;
		}

		public static object Process_AsAlias_Identifier_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return ctx.Tokens[ctx.CurrentParseNode.From].m_vContent;
		}

		public static object Process_AsAlias_AS_Identifier_Rule(OracleMbEarleyParserMultiContext ctx, int ruleMatchPosition)
		{
			return ctx.Tokens[ctx.CurrentParseNode.Children()[1].From].m_vContent;
		}
	}
}
